package com.aygxy.carproject.service;

import com.aygxy.carproject.pojo.product.dto.SpuAddNewDTO;
import com.aygxy.carproject.pojo.product.dto.SpuUpdateDTO;
import com.aygxy.carproject.pojo.product.entity.SpuEntity;
import com.aygxy.carproject.pojo.product.vo.SpuDetailStandardVO;
import com.aygxy.carproject.pojo.product.vo.SpuListItemVO;
import com.aygxy.carproject.pojo.product.vo.SpuStandardVO;
import com.aygxy.carproject.web.JsonPage;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;


public interface ProductSpuService {
    JsonPage<SpuEntity> getSpuByPage(Integer pageNum, Integer pageSize);



    /**
     * 分页查询 分类对应spu列表
     * @param categoryId
     * @param page
     * @param pageSize
     * @return
     */
    JsonPage<SpuListItemVO> listSpuByCategoryId(Long categoryId, Integer page, Integer pageSize);

    /**
     * 利用id 查询spu数据
     * @param id
     * @return
     */
    SpuStandardVO getSpuById(Long id);

    /**
     * 增加SPU
     *
     * @param spuAddNewDTO 新增的SPU对象
     */
    @Transactional
    void addNew(SpuAddNewDTO spuAddNewDTO);

    /**
     * 更新SPU
     *
     * @param id           被修改的SPU的id
     * @param spuUpdateDTO 新的相关值的对象
     */
    void updateById(Long id, SpuUpdateDTO spuUpdateDTO);


}
